package interfaces;

import java.util.List;
import java.util.Map;

import exceptions.UnknownInitialStateException;
import exceptions.UnknownTerminalStateException;

public interface Automaton {
	public Transition<String>[] getTransitions();
	public List<State> getInitStates();
	public List<State> getTermStates();
	public Map<State,Map<String,List<Transition<String>>>> getFA() throws UnknownInitialStateException, UnknownTerminalStateException;
	public Automaton reduceInitState();
	public List<String> getLabels();
	public void reverseStates();
}
